FFLUSH(3) | Linux Programmer's Manual | FFLUSH(3) |
名前¶
fflush - ストリームの内容を強制的に出力(フラッシュ)する
書式¶
#include <stdio.h>
int fflush(FILE *stream);
説明¶
fflush() 関数は、ユーザー空間でバッファリングされているすべてのデータを 与えられた出力に書き出す (フラッシュする)。 あるいはストリーム stream の下位にある書き込み関数を用いてこのストリームを更新する。 ストリームは開いた状態のままであり、 この関数によって何の影響も受けない。
stream 引数が .BR NULL ならば、 fflush() は開いているすべての出力ストリームをフラッシュする。
これらの処理をロックせずに行いたいときは、 unlocked_stdio(3) を参照のこと。
返り値¶
成功すると 0 が返される。 その他の場合には EOF が返され、 errno が、エラーに対応した値に設定される。
エラー¶
- EBADF
- Stream は開いているストリームではない。 あるいはストリームは書き込み用ではない。
fflush() 関数は write(2) に関して規定されているエラーで失敗することもある。 この場合 errno もその値に設定される。
準拠¶
C89, C99.
注意¶
fflush() は、 C ライブラリが与えているユーザー空間のバッファしかフラッシュしない。 データが物理的にディスクに保存されることを保証したければ、 カーネルバッファもフラッシュしなければならない。 これには例えば sync(2) や fsync(2) を用いる。
関連項目¶
fsync(2), sync(2), write(2), fclose(3), fopen(3), setbuf(3), unlocked_stdio(3)
2009-02-23 | GNU |